/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import model.KategoriPenyakit;
import model.Obat;

/**
 *
 * @author Florencia
 */
public class DokterKontrol {

    private Connection conn;

    public DokterKontrol(Connection koneksi) {
        this.conn = koneksi;
    }

    public static DokterKontrol getKoneksiKategori() throws SQLException {
        DokterKontrol kon = new DokterKontrol(OraConnection.getKoneksi());
        return kon;
    }

    public List<Obat> cariObatKode(String kodeObat) throws SQLException {
        PreparedStatement statement = null;
        ResultSet result = null;

        conn.setAutoCommit(false);
        statement = conn.prepareStatement("select obat.kodeobat, obat.namaobat, kategoripenyakit.kodekategori, "
                + "kategoripenyakit.namakategori "
                + "from obat,kategoripenyakit "
                + "where obat.kodekategori = kategoripenyakit.kodekategori "
                + "and obat.kodeobat like '" + kodeObat + "'");
        result = statement.executeQuery();
        List<Obat> obat = new ArrayList<Obat>();
        while (result.next()) {
            Obat ob = new Obat();
            KategoriPenyakit kat = new KategoriPenyakit();
            ob.setKodeObat(result.getString("kodeobat"));
            ob.setNamaObat(result.getString("namaobat"));
            kat.setKodeKategori(result.getString("kodekategori"));
            kat.setNamaKategori(result.getString("namakategori"));
            ob.setKategori(kat);
            obat.add(ob);
        }
        conn.commit();
        return obat;
    }

    public List<Obat> cariObatNama(String namaObat) throws SQLException {
        PreparedStatement statement = null;
        ResultSet result = null;

        conn.setAutoCommit(false);
        statement = conn.prepareStatement("select obat.kodeobat, obat.namaobat, kategoripenyakit.kodekategori, "
                + "kategoripenyakit.namakategori "
                + "from obat,kategoripenyakit "
                + "where obat.kodekategori = kategoripenyakit.kodekategori "
                + "and obat.namaObat like '" + namaObat + "'");
        result = statement.executeQuery();
        List<Obat> obat = new ArrayList<Obat>();
        while (result.next()) {
            Obat ob = new Obat();
            KategoriPenyakit kat = new KategoriPenyakit();
            ob.setKodeObat(result.getString("kodeobat"));
            ob.setNamaObat(result.getString("namaobat"));
            kat.setKodeKategori(result.getString("kodekategori"));
            kat.setNamaKategori(result.getString("namakategori"));
            ob.setKategori(kat);
            obat.add(ob);
        }
        conn.commit();
        return obat;
    }

    public List<Obat> cariObatKodeNama(String kode, String nama) throws SQLException {
        PreparedStatement statement = null;
        ResultSet result = null;

        conn.setAutoCommit(false);
        statement = conn.prepareStatement("select obat.kodeobat, obat.namaobat, kategoripenyakit.kodekategori, "
                + "kategoripenyakit.namakategori "
                + "from obat,kategoripenyakit "
                + "where obat.kodekategori=kategoripenyakit.kodekategori and obat.namaobat like '" + nama + "' "
                + "and obat.kodeobat like '" + kode + "'");
        result = statement.executeQuery();
        List<Obat> obat = new ArrayList<Obat>();
        while (result.next()) {
            Obat ob = new Obat();
            KategoriPenyakit kat = new KategoriPenyakit();
            ob.setKodeObat(result.getString("kodeobat"));
            ob.setNamaObat(result.getString("namaobat"));
            kat.setKodeKategori(result.getString("kodekategori"));
            kat.setNamaKategori(result.getString("namakategori"));
            ob.setKategori(kat);
            obat.add(ob);
        }
        conn.commit();
        return obat;
    }

    public List<Obat> cariObatKategori(String kate) throws SQLException {
        PreparedStatement statement = null;
        ResultSet result = null;

        conn.setAutoCommit(false);
        statement = conn.prepareStatement("select obat.kodeobat, obat.namaobat, kategoripenyakit.kodekategori, "
                + "kategoripenyakit.namakategori "
                + "from obat,kategoripenyakit "
                + "where obat.kodekategori=kategoripenyakit.kodekategori and "
                + "kategoripenyakit.namakategori like '" + kate + "'");
        result = statement.executeQuery();
        List<Obat> obat = new ArrayList<Obat>();
        while (result.next()) {
            Obat ob = new Obat();
            KategoriPenyakit kat = new KategoriPenyakit();
            ob.setKodeObat(result.getString("kodeobat"));
            ob.setNamaObat(result.getString("namaobat"));
            kat.setKodeKategori(result.getString("kodekategori"));
            kat.setNamaKategori(result.getString("namakategori"));
            ob.setKategori(kat);
            obat.add(ob);
        }
        conn.commit();
        return obat;
    }
}
